#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
class Shape
{
protected:
	int x, y;
public:
	Shape();
	void offsetToNewXY(int, int);
	void setXY();
	virtual string Type() = 0;
	virtual vector<int> getProperties() = 0;
	virtual void setProperties() = 0;
	virtual void printProperties() = 0;
};
class Rhombus :public Shape
{
	int weight, height;
public:
	Rhombus();
	Rhombus(int, int, int, int);
	string Type();
	vector<int> getProperties();
	void setProperties();
	void printProperties();
};
class Triangle :public Shape
{
	int weight, height;
public:
	Triangle();
	Triangle(int, int, int, int);
	string Type();
	vector<int> getProperties();
	void setProperties();
	void printProperties();
};
class Circle :public Shape
{
	int radius;
public:
	Circle();
	Circle(int, int, int);
	string Type();
	vector<int> getProperties();
	void setProperties();
	void printProperties();
};
class Container
{
	vector<Shape*> shapes;
public:
	Container(){};
	void addFigure(Shape *);
	void deleteFigure(int);
	void moveToNewXY(int, int, int);
	void setProperties(int);
	void saveFile();
	void loadFile();
	void printShapes();
};